//给定一个整数 num，将其转化为 7 进制，并以字符串形式输出。 
//
// 
//
// 示例 1: 
//
// 
//输入: num = 100
//输出: "202"
// 
//
// 示例 2: 
//
// 
//输入: num = -7
//输出: "-10"
// 
//
// 
//
// 提示： 
//
// 
// -107 <= num <= 107 
// 
// Related Topics 数学 
// 👍 106 👎 0

package com.cute.leetcode.editor.cn;

import java.util.Deque;
import java.util.LinkedList;

public class Base7 {
    public static void main(String[] args) {
        Solution solution = new Base7().new Solution();
    }
    //leetcode submit region begin(Prohibit modification and deletion)

    /**
     * 将数字转换为7进制，并以字符串形式输出
     * 倒序取余法（高中学的？）
     *
     * Java：
     *  return Integer.toString(num, 7);
     */
    class Solution {
        public String convertToBase7(int num) {
            if (num == 0 ) return "0";
            StringBuilder s = new StringBuilder();
            Deque<String> deque = new LinkedList<>();
            if (num<0){
                s.append("-");
                num = num*-1;
            }

            while (num != 0){
                deque.addFirst(String.valueOf(num%7));//取余数，并倒叙添加
                num /= 7;
            }
            while (!deque.isEmpty())
                s.append(deque.pollFirst());//倒叙添加

            return s.toString();
        }
    }
//leetcode submit region end(Prohibit modification and deletion)

}